package com.example.demo.controller;

import com.example.demo.utils.ResponseResult;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.UUID;

@CrossOrigin
@RestController
public class CommonController {
    @Value("d:/upload")
    String uploadPath;

    @PostMapping("/upload")
    public ResponseResult<String> upload(MultipartFile file) throws IOException {  //string文件上传后的访问路径（虚拟路径）
        if(file.getSize()>0){
            LocalDate currentDate =LocalDate.now();
            DateTimeFormatter formatter=DateTimeFormatter.ofPattern("yyyy//MM/dd");
            String formatDate= currentDate.format(formatter);

            //指定路径  d:\\upload   ,不改名
            File path =new File(uploadPath,formatDate);
            if(!path.exists()){
                path.mkdirs();
            }
            //取后缀
            String newFileName= UUID.randomUUID() +file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
            File f=new File(path,newFileName);  //f是上传文件名
            file.transferTo(f);
            return ResponseResult.createBySuccess(200, "/upload/"+formatDate+"/"+newFileName, "上传成功");
        }else{
            return ResponseResult.createBySuccess(500, "", "上传失败");
        }
    }

}
